Data centers and shared environments, including shared infrastructure and shared data environments, provide cloud computing services, which include the use of hardware and software computing resources delivered virtually as a service over a network, typically the Internet. Cloud computing users access application software and databases through a web browser while the business software and user data are stored on servers at a remote location. Cloud computing providers manage the shared infrastructure and platforms running the applications. Cloud computing relies on sharing of resources and thus some issues with cloud computing include security and privacy concerns, availability of resources and data, and regulations and legal issues.
A key enabling technology for cloud computing is virtualization. Virtualization is a core component to data centers and shared environments and allows a great deal of flexibility in the provisioning and placement of servers and their associated workloads in a data center. In system virtualization, multiple virtual computing systems are created within a single physical server computing system. The physical server can be a stand-alone computer, or alternatively, a computing system utilizing clustered computers and components. Virtual systems are independent operating environments that use virtual resources made up of logical divisions of physical resources such as processors, memory, and input/output (I/O) adapters. System virtualization is implemented through some managing functionality, typically hypervisor technology. Hypervisors, also called virtual machine managers (VMMs), use a thin layer of code in software or firmware to achieve fine-grained, dynamic resource sharing. Hypervisors are the primary technology for system virtualization because they provide the greatest level of flexibility in how virtual resources are defined and managed.
Hypervisors provide the ability to divide physical computing system resources into isolated logical partitions. Logical partitioning is the ability to make a server run as if it were two or more independent servers. Each logical partition operates like an independent computing system running its own operating system (also referred to as a virtual system, virtual server, or virtual machine). Hypervisors can allocate dedicated processors, I/O adapters, and memory to each logical partition and can also allocate shared processors to each logical partition. The hypervisor may also create virtual processors from physical processors so the logical partitions can share the physical processors while running independent operating environments.
In addition to creating and managing the logical partitions, the hypervisor manages communication between the logical partitions via a virtual network. To facilitate communication, each logical partition may have a virtual adapter for communication between the logical partitions, via the virtual network. The type of the virtual adapter depends on the operating system and network protocol used by the logical partition. Examples of virtual adapters include virtual Ethernet adapters, virtual Fibre Channel adapters, virtual Small Computer Serial Interface (SCSI) adapters, and virtual serial adapters.